<?php

class User extends AppModel {
	static public $STATO = array("R" => "Registrato", "A" => "Attivo", "D" => "Non Attivo", "C" => "Cancellato");
    var $useTable = 'user'; // nome della tabella
    
    //La seguente istruzione permette di inserire in modo automatico un utente nella tabella ACL aros
    public $actsAs = array('Acl' => array('type' => 'requester'));

    // public $hasOne = array('Anagrafica' => array('foreignKey' => 'anagrafica_id'));

	public $belongsTo = array(
	        'Group' => array(
	            'className'    => 'Group' 
	            ,'foreignKey' => 'group_id'
	        ) 
	        ,'Anagrafica' => array(
	            'className'    => 'Anagrafica' 
	            ,'foreignKey' => 'anagrafica_id'
	        ) 
	);

	

    function parentNode(){
        if (!$this->id) {
            return null;
        }
        $data = $this->read();
        if (!$data['User']['group_id']){
            return null;
        } else {
            return array('model' => 'Group', 'foreign_key' => $data['User']['group_id']);
        }
    }
	
	public function afterSave($created) {
		if ($created) {
			if ($this->field("username")!="")
			    $this->Aro->save(array('alias'=>$this->field("username")));
			else
				throw new Exception(__("Si sta cercando di inserire un utente senza username."));
		}
	}
	
	public function afterFind($results, $primary = false) {
		foreach ($results as $key => $record) {
			if (is_array($record)) {
				if (isset($record['User']['group_id'])) {
					$parametri = CakeSession::read("parametri");
					$results[$key]["User"]["isAdministrator"] = $record['User']['group_id']==$parametri[PARAMETRO_GRUPPO_ADMINISTRATORS];
				}
			}
		}
		return $results;
	}

}

?>